/* types */
import { SettingGPTRobotChannelType, SettingGPTRobotModuleType } from "@src/modules/setting/gpt/types";
/* enums */
import { 
  SettingGPTChannelEnum,
  SettingGPTRobotInsideModuleCNNmaeEnum, 
  SettingGPTRobotInsideModuleEnum, 
  SettingGPTRobotModelModuleEnum, 
  SettingGPTRobotModelModuleEnumCNNameEnum,
  SettingGPTRobotPluginModuleCNNameEnum,
  SettingGPTRobotPluginModuleEnum,
  SettingGPTServiceTypeEnum,
  SettingGPTServiceTypeEnumCNNameEnum
} from "@src/modules/setting/gpt/model/enum";

const SettingGPTRobotInsideModuleWiki: SettingGPTRobotModuleType = {
  name: SettingGPTRobotInsideModuleCNNmaeEnum[SettingGPTRobotInsideModuleEnum.Wiki],
  value: SettingGPTRobotInsideModuleEnum.Wiki,
  enable: false,
  show: false,
  disabled: true,
  showSetting: true,
}

const SettingGPTRobotInsideModuleTask: SettingGPTRobotModuleType = {
  name: SettingGPTRobotInsideModuleCNNmaeEnum[SettingGPTRobotInsideModuleEnum.Task],
  value: SettingGPTRobotInsideModuleEnum.Task,
  enable: false,
  show: false,
  disabled: true,
}

const SettingGPTRobotInsideModuleCustomer: SettingGPTRobotModuleType = {
  name: SettingGPTRobotInsideModuleCNNmaeEnum[SettingGPTRobotInsideModuleEnum.Customer],
  value: SettingGPTRobotInsideModuleEnum.Customer,
  enable: false,
  show: false,
  disabled: true,
}

const SettingGPTRobotInsideModuleProduct: SettingGPTRobotModuleType = {
  name: SettingGPTRobotInsideModuleCNNmaeEnum[SettingGPTRobotInsideModuleEnum.Product],
  value: SettingGPTRobotInsideModuleEnum.Product,
  enable: false,
  show: false,
  disabled: true,
}

const SettingGPTRobotModelModule3_5: SettingGPTRobotModuleType = {
  name: SettingGPTRobotModelModuleEnumCNNameEnum[SettingGPTRobotModelModuleEnum.GPT3_5],
  value: SettingGPTRobotModelModuleEnum.GPT3_5,
  tooltip: '采用预训练技术，交互式对话能力强',
  enable: false,
  show: true,
  disabled: false,
}

const SettingGPTRobotModelModule4: SettingGPTRobotModuleType = {
  name: SettingGPTRobotModelModuleEnumCNNameEnum[SettingGPTRobotModelModuleEnum.GPT4],
  value: SettingGPTRobotModelModuleEnum.GPT4,
  tooltip: '采用预训练技术，交互式对话能力强',
  enable: false,
  show: true,
  disabled: false,
}

const SettingGPTRobotModelModule4_32k: SettingGPTRobotModuleType = {
  name: SettingGPTRobotModelModuleEnumCNNameEnum[SettingGPTRobotModelModuleEnum.GPT4_32k],
  value: SettingGPTRobotModelModuleEnum.GPT4_32k,
  tooltip: '采用预训练技术，交互式对话能力强',
  enable: false,
  show: true,
  disabled: false,
}

const SettingGPTRobotModelModule3_5Turbo: SettingGPTRobotModuleType = {
  name: SettingGPTRobotModelModuleEnumCNNameEnum[SettingGPTRobotModelModuleEnum.GPT3_5_Turbo],
  value: SettingGPTRobotModelModuleEnum.GPT3_5_Turbo,
  tooltip: '采用预训练技术，交互式对话能力强',
  enable: false,
  show: true,
  disabled: false,
}

const SettingGPTRobotModelModule4Turbo: SettingGPTRobotModuleType = {
  name: SettingGPTRobotModelModuleEnumCNNameEnum[SettingGPTRobotModelModuleEnum.GPT4_Turbo],
  value: SettingGPTRobotModelModuleEnum.GPT4_Turbo,
  tooltip: '采用预训练技术，交互式对话能力强',
  enable: false,
  show: true,
  disabled: false,
}

const SettingGPTRobotModelModuleTongYi: SettingGPTRobotModuleType = {
  name: SettingGPTRobotModelModuleEnumCNNameEnum[SettingGPTRobotModelModuleEnum.TongYi],
  value: SettingGPTRobotModelModuleEnum.TongYi,
  tooltip: '跨模态理解，自主创作能力丰富',
  enable: false,
  show: true,
  disabled: false,
}

const SettingGPTRobotModelModuleWenXin: SettingGPTRobotModuleType = {
  name: SettingGPTRobotModelModuleEnumCNNameEnum[SettingGPTRobotModelModuleEnum.WenXin],
  value: SettingGPTRobotModelModuleEnum.WenXin,
  tooltip: '通用性强，高效稳定',
  enable: false,
  show: true,
  disabled: false
}

const SettingGPTRobotModelModuleHunYuan: SettingGPTRobotModuleType = {
  name: SettingGPTRobotModelModuleEnumCNNameEnum[SettingGPTRobotModelModuleEnum.HunYuan],
  value: SettingGPTRobotModelModuleEnum.HunYuan,
  enable: false,
  show: true,
  disabled: false
}

const SettingGPTRobotModelModuleOther: SettingGPTRobotModuleType = {
  name: SettingGPTRobotModelModuleEnumCNNameEnum[SettingGPTRobotModelModuleEnum.Other],
  value: SettingGPTRobotModelModuleEnum.Other,
  enable: false,
  show: true,
  disabled: true
}

const SettingGPTRobotInsideModules: SettingGPTRobotModuleType[] = [
  SettingGPTRobotInsideModuleWiki,
  SettingGPTRobotInsideModuleTask,
  {
    name: SettingGPTRobotInsideModuleCNNmaeEnum[SettingGPTRobotInsideModuleEnum.Customer],
    value: SettingGPTRobotInsideModuleEnum.Customer,
    enable: false,
    show: false,
    disabled: true,
  },
  {
    name: SettingGPTRobotInsideModuleCNNmaeEnum[SettingGPTRobotInsideModuleEnum.Product],
    value: SettingGPTRobotInsideModuleEnum.Product,
    enable: false,
    show: false,
    disabled: true,
  }
]

const SettingGPTRobotModelModules: SettingGPTRobotModuleType[] = [
  SettingGPTRobotModelModule4Turbo,
  SettingGPTRobotModelModuleTongYi,
  SettingGPTRobotModelModuleWenXin,
  SettingGPTRobotModelModuleOther
]

const SettingGPTRobotChannelList: SettingGPTRobotChannelType[] = [
  {
    name: '小宝AI助理',
    value: SettingGPTChannelEnum.System,
    enable: true,
    disabled: false,
    show: true,
    tooltip: '内部机器人助理，以系统内右下角悬浮头像的形式出现'
  },
  {
    name: '小宝客服机器人',
    value: SettingGPTChannelEnum.IM,
    enable: true,
    disabled: false,
    show: true,
    tooltip: '配置该场景后，机器人可应用于在线客服、微信公众号、小程序等。'
  },
  // {
  //   name: '自助门户',
  //   value: SettingGPTChannelEnum.Portal,
  //   enable: true,
  //   disabled: false,
  //   show: true,
  // },
  // {
  //   name: '微信公众号',
  //   value: SettingGPTChannelEnum.WeChat,
  //   enable: true,
  //   disabled: false,
  //   show: true
  // },
]

const SettingGPTRobotPluginModules: SettingGPTRobotModuleType[] = [
  {
    name: SettingGPTRobotPluginModuleCNNameEnum[SettingGPTRobotPluginModuleEnum.TextToImage],
    value: SettingGPTRobotPluginModuleEnum.TextToImage,
    enable: false,
    show: false,
    disabled: true,
  },
  {
    name: SettingGPTRobotPluginModuleCNNameEnum[SettingGPTRobotPluginModuleEnum.ExplainImage],
    value: SettingGPTRobotPluginModuleEnum.ExplainImage,
    enable: false,
    show: false,
    disabled: true,
  },
  {
    name: SettingGPTRobotPluginModuleCNNameEnum[SettingGPTRobotPluginModuleEnum.TreeMind],
    value: SettingGPTRobotPluginModuleEnum.TreeMind,
    enable: false,
    show: false,
    disabled: true,
  },
]

const SettingGPTRobotServiceModules: SettingGPTRobotModuleType[] = [
  {
    name: SettingGPTServiceTypeEnumCNNameEnum[SettingGPTServiceTypeEnum.Common],
    value: SettingGPTServiceTypeEnum.Common,
    enable: true,
    show: true,
    disabled: true,
  },
  {
    name: SettingGPTServiceTypeEnumCNNameEnum[SettingGPTServiceTypeEnum.Intelligent],
    value: SettingGPTServiceTypeEnum.Intelligent,
    enable: true,
    show: true,
    disabled: false,
  },
  {
    name: SettingGPTServiceTypeEnumCNNameEnum[SettingGPTServiceTypeEnum.BI],
    value: SettingGPTServiceTypeEnum.BI,
    enable: true,
    show: true,
    disabled: false,
  }
]

export {
  SettingGPTRobotInsideModules,
  SettingGPTRobotInsideModuleWiki,
  SettingGPTRobotInsideModuleTask,
  SettingGPTRobotModelModules,
  SettingGPTRobotModelModule3_5,
  SettingGPTRobotModelModule4,
  SettingGPTRobotModelModuleTongYi,
  SettingGPTRobotPluginModules,
  SettingGPTRobotModelModule3_5Turbo,
  SettingGPTRobotModelModule4Turbo,
  SettingGPTRobotServiceModules,
  SettingGPTRobotInsideModuleCustomer,
  SettingGPTRobotInsideModuleProduct,
  SettingGPTRobotChannelList,
}